package com.defense;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class NewClass {
    JFrame jf = new JFrame("新建班级");
    final int width = 500;
    final int height = 200;

    // 组装视图
    public void init() {
        // 设置窗口大小、位置和不可调整大小
        jf.setBounds((Toolkit.getDefaultToolkit().getScreenSize().width - width) / 2,
                (Toolkit.getDefaultToolkit().getScreenSize().height - height) / 2,
                width, height);
        jf.setResizable(false);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置窗口默认关闭操作

        // 设置JFrame的布局为BorderLayout
        jf.setLayout(new BorderLayout());

        // 创建标题标签，并设置其水平居中
        JLabel titleLabel = new JLabel("新建班级", SwingConstants.CENTER);
        jf.add(titleLabel, BorderLayout.NORTH); // 将标题标签添加到JFrame的北部区域

        // 创建主面板，使用垂直布局
        JPanel mainPanel = new JPanel();
        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));

        // 新增班级
        Box uBox = Box.createHorizontalBox();
        JLabel uLabel = new JLabel("班级名称：");
        JTextField uField = new JTextField(10);
        uBox.add(uLabel);
        uBox.add(Box.createHorizontalStrut(20));
        uBox.add(uField);

        // 按钮
        Box btnBox = Box.createHorizontalBox();
        JButton loginBtn = new JButton("新增");
        JButton cancelBtn = new JButton("返回");
        btnBox.add(Box.createHorizontalStrut(150)); // 添加一些水平间距使按钮居中
        btnBox.add(loginBtn);
        btnBox.add(Box.createHorizontalStrut(20));
        btnBox.add(cancelBtn);

        // 为新增按钮添加事件监听器
        loginBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String className = uField.getText();
                FileWriter fileWriter = null;
                PrintWriter printWriter = null;
                try {
                    fileWriter = new FileWriter("classes.txt", true);
                    printWriter = new PrintWriter(fileWriter);
                    printWriter.println(className);
                    JOptionPane.showMessageDialog(jf, "班级信息已成功保存！");
                } catch (IOException ex) {
                    // 忽略异常
                } finally {
                    if (printWriter!= null) {
                        printWriter.close();
                    }
                    if (fileWriter!= null) {
                        try {
                            fileWriter.close();
                        } catch (IOException ex) {
                            // 忽略文件流关闭失败情况
                        }
                    }
                }
            }
        });

        // 为返回按钮添加事件监听器
        cancelBtn.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                MangerInterface mangerInterface = new MangerInterface();
                mangerInterface.init();
                jf.setVisible(false);
                jf.dispose();
            }
        });

        // 将uBox和btnBox添加到主面板
        mainPanel.add(uBox);
        mainPanel.add(Box.createVerticalStrut(20)); // 添加一些垂直间距
        mainPanel.add(btnBox);

        // 将主面板添加到JFrame的内容面板（中心区域）
        jf.add(mainPanel, BorderLayout.CENTER);

        jf.setVisible(true);
    }

    public static void main(String[] args) {
        new NewClass().init();
    }
}